#include<iostream>
#include<stdio.h>
#include<signal.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>
using namespace std;

void catchsig(int signo)
{
   cout<<"我是一个进程，此时我接收到了信号: "<<signo<<endl;
   alarm(1);    
}

int main(int argc,char* argv[])
{
 for(int signo=1;signo<=31;signo++)
 {
    signal(signo,catchsig);
 }
while(1)
{
    cout<<"我在运行着："<<getpid()<<endl;
 sleep(1);
}
 
 
}
//     int cnt=0;
// void catchsig(int signo)
// {
//   //  cout<<"我是一个进程，此时我接收到了信号: "<<signo<<endl;
//   cout<<"the alarm is ringing now,cnt: "<<cnt<<endl;
//  //   exit(0);
//    alarm(1);
// }

// int main(int argc,char *argv[])
// {

// signal(SIGALRM,catchsig);
// alarm(1);

// while(1)
// {
//     cnt++;
// //    cout<<"cnt: "<<cnt<<endl;
// }

 //signal(11,catchsig);

// int a=10;
// a/=0;


// while(1)
// {
//     cout<<"我是一个进程,正在运行中....."<<endl;
// int *ptr;
// ptr=nullptr;
// *ptr=10;
//     sleep(1);
// }


//     return 0;
// }

// int main()

// {
//     int cnt=0;
//     while(cnt<10)
//     {
//         cout<<"cnt: "<<cnt<<" pid: "<<getpid()<<endl;
//         cnt++;
//         sleep(1);
//  if(cnt==5)
//  {
// int a=10;
// a/=0;
//  }

//     }
//     return 0;
// }


// void Usage(const string& s)
// {
//   std::cout << "\nUsage: " << s << " pid signo\n" << std::endl;
// }


// int main(int argc,char* argv[])
// {
//  if(argc!=3)
//  {
//     Usage(argv[0]);
//     exit(-1);
//  }

// pid_t pid=atoi(argv[1]);
// int signo=atoi(argv[2]);
// int n=kill(pid,signo);
// if(n!=0)
// {
//     perror("kill error");
//     exit(1);
// }

//     return 0;
// }
